Java if else不加花括号{}的用法

本文探讨了Java中if else语句使用时不加花括号{}的情况。当只有一对if else时,不加{}只会控制紧跟的单条语句;而多个if else时,不加{}可能导致逻辑错误,因为else总是与最近的未配对if匹配。总结建议,在复杂逻辑中使用{}以避免误解和错误。
摘要由CSDN通过智能技术生成


今天看代码,发现有的 if else语句后面没有花括号 {}

final void lock(){
    if(compareAndSetState(0,1))
        setExclusiveOwnerThread(Thread.currentThread());
    else
        acquire(1);
}

下面谈一下,加不加 花括号 {} 的 区别和影响

1 只有一对 if else 时,后面不加{},就近原则,只控制第一句
  • 不加 {}
if (1==2)
x=1;y=2;z=3;

编译后

if (1==2)
{x=1};y=2;z=3; 

当1!=2时,y=2;z=3;仍执行


  • 加{}
if (1 == 2)
{ x=1;y=2;z=3;}

当1!=2时,都不执行


  • 总结
    后面不加{}时,就近原则,只控制第一句
2 多个 if else时,if else按照就近匹配的原则进行匹配,这时候,不加{},很容易出错

实际想要的效果

if(Character.isLowerCase(c)){
    if(count[c-'a']==1)
       return i;
}
else{
    if(count[c-'A'+26]==1)
       return i;
}

如果不加 {},实际行 else匹配的是第二个 if,程序出错

if(Character.isLowerCase(c))
   if(count[c-'a']==1)
      return i;
   else
      if(count[c-'A'+26]==1)
        return i;
3 总结

if … else… 能够不加 {} 的情况

  • 只有一对 if else语句
  • if else 后面只跟着一个判断语句
    为了防止出错,建议代码规范化,if else 都加上 {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值